var _applicationCache = function (window) {
    if(window==null){
        return
    }
    var errorlen = 0;
    var line = true;
    var _applicationCache = window.applicationCache;
    var _addEventListener = window.addEventListener


    this.updateready = function () {
        if (_applicationCache) {
            _applicationCache.update();
        }
    }
    if (_applicationCache == null) {
        return;
    }

    _applicationCache.addEventListener('error', function () {
        if (line) {
            //alert('error')
            ///_applicationCache.update()
        }
    }, false);

    _addEventListener('online', function () {
        line = true;
        _applicationCache.update();
    }, false);

    _addEventListener('offline', function () {
        line = false;
    }, false);
    var updateready = function () {

        /*

appCache.UNCACHED = 0; // 网页未缓存
appCache.IDLE = 1; // 闲置
appCache.CHECKING = 2; // 检查中
appCache.DOWNLOADING = 3; // 下载中
appCache.UPDATEREADY = 4; // 更新已准备完毕
appCache.OBSOLETE = 5; // 更新失败

        */
        //缓存更新完毕 

        if (_applicationCache.status == _applicationCache.UPDATEREADY) {
            //切换为最新缓存  
            _applicationCache.swapCache();
            window.location.reload();

        } else if (_applicationCache.status == _applicationCache.OBSOLETE) {
            setTimeout(function () {
                _applicationCache.update()
                window.location.reload();
            }, 1000)
        } else {

        }
    };

    _applicationCache.addEventListener('updateready', function (e) {
        updateready()
    }, false);

    // 离线资源存储完成之后触发
    window.applicationCache.addEventListener('cached', function () {
        console.log('cached');
    });

    // 离线存储资源进行更新检查的时候会触发
    window.applicationCache.addEventListener('checking', function () {
        console.log('checking');
    });

    // 开始下载离线资源的时候会触发
    window.applicationCache.addEventListener('downloading', function () {
        console.log('downloading');
    });

    // 下载每一个资源的时候会触发
    window.applicationCache.addEventListener('progress', function () {
        console.log('progress');
    });

    // 离线资源更新完成之后
    window.applicationCache.addEventListener('updateready', function () {
        console.log('updateready');
    });

    // 检查更新之后发现没有资源更新的时候触发
    window.applicationCache.addEventListener('noupdate', function () {
        console.log('noupdate');
    });

    // obsolete
    window.applicationCache.addEventListener('obsolete', function () {
        console.log('obsolete');
    });

    // error
    window.applicationCache.addEventListener('error', function () {
        console.log('error');
    });

};

module.exports = _applicationCache;